#include "Character.h"



/**
 * Function returning m_strName
 * @param void
 * @return std::string - name of the Character
 */
std::string Character::getName()
{
	return m_strName;
}


/**
 * Sets m_iHP and m_iMaxHP
 * @param int HP - the current health points
 * @param int maxHP - the maximum health points
 * @see setHP(int val)
 * @return void
 */
void Character::setHP(int HP, int maxHP)
{
	m_iHP = HP;
	m_iMaxHP = maxHP;
}


/**
 * Sets m_iMP and m_iMaxMP
 * @param int MP - the current magic points
 * @param int maxMP - the maximum magic points
 * @see setMP(int val)
 * @return void
 */
void Character::setMP(int MP, int maxMP)
{
	m_iMP = MP;
	m_iMaxMP = maxMP;
}


/**
 * Sets m_iXP and m_iMaxXP
 * @param int XP - the current experience points
 * @param int maxXP - the maximum experience points
 * @return void
 */
void Character::setXP(int XP, int maxXP)
{
	m_iXP = XP;
	m_iMaxXP = maxXP;
}


/**
 * Sets m_iLevel (Level or Rank) of the Character
 * @param int level
 * @return void
 */
void Character::setLevel(int level)
{
	m_iLevel = level;
}


/**
 * Returns m_iHP
 * @param void
 * @return int - the current Health Points
 */
int Character::getHP()
{
	return m_iHP;
}


/**
 * Returns m_iMP
 * @param void
 * @return int - the current Magic Points
 */
int Character::getMP()
{
	return m_iMP;
}


/**
 * Returns m_iMaxHP
 * @param void
 * @return int - the maximum Health Points
 */
int Character::getMaxHP()
{
	return m_iMaxHP;
}


/**
 * Returns m_iPhysicalAttack of the Character
 * @param void
 * @return int - physical attack
 */
int Character::getPhysicalAttack()
{
	return m_iPhysicalAttack;
}


/**
 * Returns m_iPhysicalDefense of the Character
 * @param void
 * @return int - physical defense
 */
int Character::getPhysicalDefense()
{
	return m_iPhysicalDefense;
}


/**
 * Set the name of m_strName
 * @param std::string name - name of the Character
 * @return void
 */
void Character::setName(std::string name)
{
	m_strName = name;
}


/**
 * Set the initial value of m_iMaxHP and m_iHP
 * @param int val - initial value of current and maximum Hit Points
 * @see setHP()
 * @return void
 */
void Character::setInitHP(int val)
{
	m_iMaxHP = val;
	setHP(m_iMaxHP);
}


/**
 * Set the initial value of m_iMaxMP and m_iMP
 * @param int val - initial value of current and maximum Magic Points
 * @see setMP()
 * @return void
 */
void Character::setInitMP(int val)
{
	m_iMaxMP = val;
	setMP(m_iMaxMP);
}


/**
 * Set the value of m_iHP
 * @param int val - current HP
 * @return void
 */
void Character::setHP(int val)
{
	m_iHP = val;
}


/**
 * Set the value of m_iMP
 * @param int val - current MP
 * @return void
 */
void Character::setMP(int val)
{
	m_iMP = val;
}


/**
 * Set the value of m_iXP
 * @param int val - current XP
 * @return void
 */
void Character::setXP(int val)
{
	m_iXP = val;
}


/**
 * Set the value of m_iPhysicalAttack and m_iPhysicalDefense
 * @param int att - attack points
 * @param int def - defense points
 * @see setPhysicalAttack()
 * @see setPhysicalDefense()
 * @return void
 */
void Character::setPhysicalCombatAttr(int att, int def)
{
	setPhysicalAttack(att);
	setPhysicalDefense(def);
}


/**
 * Set the value of m_iMagicalAttack and m_iMagicalDefense
 * @param int att - magical attack
 * @param int def - magical defense
 * @see setMagicalAttack()
 * @see setMagicalDefense()
 * @return void
 */
void Character::setMagicalCombatAttr(int att, int def)
{
	setMagicalAttack(att);
	setMagicalDefense(def);
}


/**
 * Set the value of m_iPhysicalAttack
 * @param attack
 * @return void
 */
void Character::setPhysicalAttack(int val)
{
	m_iPhysicalAttack = val;
}


/**
 * Set the value of m_iPhysicalDefense
 * @param int val - defense points
 * @return void
 */
void Character::setPhysicalDefense(int val)
{
	m_iPhysicalDefense = val;
}


/**
 * Set the value of m_iMagicalAttack
 * @param int val - magical attack points
 * @return void
 */
void Character::setMagicalAttack(int val)
{
	m_iMagicalAttack = val;
}


/**
 * Set the value of m_iMagicalDefense
 * @param int val - magical defense points
 * @return void
 */
void Character::setMagicalDefense(int val)
{
	m_iMagicalDefense = val;
}


/**
 * Set the value of m_iEvasion
 * @param int val - evasion point
 * @return void
 */
void Character::setEvasion(int val)
{
	m_iEvasion = val;
}


/**
 * Set the value of iStealth and iPerception
 * @param int iStealth - stealth
 * @param int iPerception - perception
 * @return void
 */
void Character::setDiscretion(int iStealth, int iPerception)
{
	m_iStealth = iStealth;
	m_iPerception = iPerception;
}


/**
 * Adds points to m_iXP
 * @param int val - additional experience
 * @return void
 */
void Character::addXP(int val)
{
	m_iXP += val;
}


/**
 * Returns m_iXP
 * @param void
 * @return current experience points
 */
int Character::getXP()
{
	return m_iXP;
}


/**
 * Returns the Rank (or Level) of the Character
 * @param void
 * @return current Level
 */
unsigned int Character::getLevel()
{
	return m_iLevel;
}
